#include <iostream>
#include <fstream>
using namespace std;
void archivo1( string VecJugador1[]);
void archivo2( string VecJugador2[]);
void mostrarTablero(string VecTablero[]);
char buscarPosicion(string VecJugador[], string VecTablero[], int fila, int columna,int &buqueAvida,int &buqueBvida,int &boteAvida,int &boteBvida,int &boteCvida,int &subvida,int &portvida);
int main()
{
    int buque1Avida=3,buque1Bvida=3,buque2Avida=3,buque2Bvida=3;
    int bote1Avida=2,bote1Bvida=2,bote1Cvida=2,bote2Avida=2,bote2Bvida=2,bote2Cvida=2;
    int sub1vida=3,sub2vida=3;
    int port1vida=3,port2vida=3;
    string VecJugador1[10],VecJugador2[10],VecTablero1[10],VecTablero2[10];
    int winjug1=0,winjug2=0;
    int j=0;
    int fila,columna;
    archivo1(VecJugador1);
    archivo2(VecJugador2);
    int i=0;
    while(i<10)
    {
        VecTablero1[i]="0000000000";
        i++;
    }

    while(j<10)
    {
        VecTablero2[j]="0000000000";
        j++;
    }
    cout<<"Bienvenido a la Batalla Naval. Preparensen,Apunten,Fuego!!!"<<endl;
    while(winjug1==0 && winjug2==0)
    {
        if(buque1Avida==0 && buque1Bvida==0 && bote1Avida==0 && bote1Bvida==0 && bote1Cvida==0 && sub1vida==0 && port1vida==0)
        {
            winjug2=1;
        }
        if(buque2Avida==0 && buque2Bvida==0 && bote2Avida==0 && bote2Bvida==0 && bote2Cvida==0 && sub2vida==0 && port2vida==0)
        {
            winjug1=1;
        }
        cout<<"Jugador 1, Juegue:"<<endl;
        mostrarTablero(VecTablero2);
        cout<<"Elija su Fila de ataque: ";
        cin>>fila;
        cout<<"Elija su columna para el angulo de disparo: ";
        cin>>columna;
        VecTablero2[fila-1][columna-1]=buscarPosicion( VecJugador2,  VecTablero2,  fila,  columna, buque2Avida, buque2Bvida, bote2Avida, bote2Bvida, bote2Cvida, sub2vida, port2vida);
        mostrarTablero(VecTablero2);
        cout<<"***************************************************************"<<endl;
        cout<<"Jugador 2, Juegue:"<<endl;
        mostrarTablero(VecTablero1);
        cout<<"Elija su Fila de ataque: ";
        cin>>fila;
        cout<<"Elija su columna para el angulo de disparo: ";
        cin>>columna;
        VecTablero1[fila-1][columna-1]=buscarPosicion( VecJugador1,  VecTablero1,  fila,  columna, buque1Avida, buque1Bvida, bote1Avida, bote1Bvida, bote1Cvida, sub1vida, port1vida);
        mostrarTablero(VecTablero1);


    }
    if(winjug1==1)
    {
        cout<<"Jugador 1 ha Ganado la Partida, Felicidades Comandante"<<endl;
    }
    if(winjug2==1)
    {
        cout<<"Jugador 2 ha Ganado la Partida, Felicidades Comandante"<<endl;
    }
    return 1;
}
void archivo1( string VecJugador1[])
{
    ifstream tablero1 ("Batalla Naval Tablero 1.txt");
    int i=0;
    string line;
    while(getline(tablero1,line))
    {
        VecJugador1[i]=line;
        i++;
    }
    tablero1.close();
    return;
}
void archivo2( string VecJugador2[])
{
    ifstream tablero2 ("Batalla Naval Tablero 2.txt");
    int i=0;
    string line;
    while(getline(tablero2,line))
    {
        VecJugador2[i]=line;
        i++;
    }
    tablero2.close();
    return;
}
void mostrarTablero(string VecTablero[])
{
    int i=0;
    while(i<10)
    {
        cout<<VecTablero[i]<<endl;
        i++;
    }
    return;
}
char buscarPosicion(string VecJugador[], string VecTablero[], int fila, int columna,int &buqueAvida,int &buqueBvida,int &boteAvida,int &boteBvida,int &boteCvida,int &subvida,int &portvida)
{
    char pos;
    pos=VecJugador[fila-1][columna-1];
    switch (pos)
    {
        case '0':
        cout<<"Agua"<<endl;
        return ' ';
        break;
        case '1':
        buqueAvida--;
        cout<<"Impacto!!"<<endl;
        if(buqueAvida==0)
        {
            cout<<"Primer Buque Hundido!!"<<endl;
        }
        if(buqueAvida<0)
        {
            buqueBvida--;
            if(buqueBvida==0)
            {
                cout<<"Todos los Buques se han Hundido!!!" <<endl;
            }
        }

        return 'X';
        break;
        case '2':
        boteAvida--;
        cout<<"Impacto!!"<<endl;
         if(boteAvida==0)
        {
            cout<<"Primer Bote Hundido!!"<<endl;
        }
        if(boteAvida<0)
        {
            boteBvida--;
             if(boteBvida==0)
        {
            cout<<"Segundo Bote Hundido!!"<<endl;
        }
            if(boteBvida<0 && boteAvida<0)
            {
                boteCvida--;
                if(boteCvida==0)
                {
                    cout<<"Todos los Botes se han Hundido!!!"<<endl;
                }
            }
        }
        return 'X';
        break;
        case '3':
        subvida--;
        cout<<"Impacto!!!"<<endl;
        if(subvida==0)
        {
            cout<<"Submarino Hundido!!!"<<endl;
        }
        return 'X';
        break;
        case '4':
        cout<<"Impacto!!!"<<endl;
        portvida--;
        cout<<"port preuba: "<<portvida<<endl;
        if(portvida==0)
        {
            cout<<"Portaaviones Hundido!!!"<<endl;
        }
        return 'X';
        break;

    }
}

